package com.suisung.shopsuite.account.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.suisung.shopsuite.core.annotation.QueryField;
import com.suisung.shopsuite.core.annotation.QueryType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

@Getter
@Setter
@Accessors(chain = true)
@TableName("account_proxy_request")
@ApiModel(value = "UserProxy对象", description = "用户代理申请表")
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class UserProxy implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("申请编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("用户编号")
    @TableField("user_id")
    private Integer userId;

    @ApiModelProperty("联系人")
    @TableField("contacts")
    @QueryField(type = QueryType.LIKE)
    private String contacts;

    @ApiModelProperty("联系人电话")
    @TableField("telephone")
    @QueryField(type = QueryType.LIKE)
    private String telephone;

    @ApiModelProperty("备注")
    @TableField("remark")
    private String remark;

    @ApiModelProperty("申请时间")
    @TableField("create_time")
    private Date createTime;

    @ApiModelProperty("修改时间")
    @TableField("update_time")
    private Date updateTime;

    @ApiModelProperty("申请状态 0 待审核 1申请通过")
    @TableField("status")
    private Integer status;

    @ApiModelProperty("申请等级编号")
    @TableField("user_level_id")
    private Integer userLevelId;

    @ApiModelProperty("上级用户编号")
    @TableField(exist = false)
    private Integer userParentId;

    @ApiModelProperty("用户信息")
    @TableField(exist = false)
    private UserInfo userInfo;

}
